<!--
 * @Author: your name
 * @Date: 2021-09-07 16:16:38
 * @LastEditTime: 2021-09-09 20:16:49
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \musicapp\src\components\listviewTop.vue
-->
<template>
  <div class="searchTop" >
      
      <div class="searchTopNav">
          <div class="back" @click="$router.go(-1)">
            <svg class="icon" aria-hidden="true">
                <use xlink:href="#icon-zuojiantou"></use>
            </svg>
            

          </div>
          <div class="right">
              <input type="text" placeholder="陈奕迅" @keydown.enter="saveKeyWord" v-model="searchKeyWord">
          </div>
      </div>
      <div class="history" v-show="searchSongs.length ==0">
          <div class="historyLeft">
              历史
          </div>
          <div class="historyRight">
              <div @click="historySearch(item)" class="keywordItem" v-for="item in keywordList" :key="item">{{item}}</div>
          </div>
      </div>
      

      <div class="searchSongs" v-show="searchSongs.length!==0">
      <div class="searchSongs-top">
          <div class="left">
            <svg class="icon"><use xlink:href="#icon-bofang"></use></svg>
            <div class="text">
                <div class="title">播放全部</div>
                <div class="num">（共{{searchSongs.length}}）首</div>
            </div>
          </div>
          
      </div>
      <div class="list">
          <div class="playItem" v-for="(item,i) in searchSongs" :key="item">
              <div class="left">
                  <div class="index">{{i+1}}</div>
                  <div class="content">
                      <div class="title">{{item.name}}</div>
                      <div class="anthor">
                          <span class="name">{{item.artists[0].name}}</span>
                          
                        </div>
                  </div>
              </div>
              <div class="right">
                  <svg class="icon" @click="setPlay(item,i)"><use xlink:href="#icon-bofang1"></use></svg>
                  <svg class="icon"><use xlink:href="#icon-gengduo"></use></svg>
              </div>
          </div>
      </div>
  </div>
  </div>
</template>

<script>
import {searchMusic} from '@/api/index.js'
export default {
   data() {
       return {
           keywordList:[],
           searchKeyWord:'',
           searchSongs:[],
       }
   },
   beforeMount(){
       this.keywordList = localStorage.keywordList? JSON.parse(localStorage.keywordList):[]
       this.keywordList = Array.from(new Set(this.keywordList))
   },
   methods:{
       async saveKeyWord(){
           this.keywordList.push(this.searchKeyWord)
           this.keywordList = Array.from(new Set(this.keywordList)) 
           if(this.keywordList.length>10){
              this.keywordList = this.keywordList.slice(this.keywordList.length-10,this.keywordList.length)
           }
           localStorage.keywordList = JSON.stringify(this.keywordList)
           let result = await searchMusic(this.searchKeyWord)
           this.searchSongs = result.data.result.songs
           console.log(result);
       },
       historySearch(keyword){
           this.searchKeyWord = keyword
           this.saveKeyWord()
       },
       setPlay(item,i){
           item.al = item.album;
           item.al.picUrl = item.album.artist.img1v1Url
           this.$store.commit('pushPlaylist',item)
           this.$store.commit('setPlayIndex',this.$store.state.playlist.length-1)
       }
   },
}
</script>

<style lang="less" scoped>
    .searchTop{
        
        width: 7.5rem;
        height: calc(100vh - 1.2rem);
        
        padding: 0 0.4rem;
        .searchTopNav{
            display: flex;
            align-items: center;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 1.2rem;
            padding: 0 0.2rem;
            .icon{
                width: 0.6rem;
                height: 0.6rem;
            }
            .right{
                flex: 1;
                padding: 0 0 0 0.4rem;
                input{
                    border: none;
                    outline: none;
                   border-bottom: 1px solid #666; 
                   width: 100%;
                   height: 0.8rem;
                   font-size: 0.4rem;
                }
            }
        }
        .history{
            display: flex;
            margin-top: 1.2rem;
            .historyLeft{
                width: 1rem;
                height: 0.6rem;
                font-weight: 900;
                line-height: 00.6rem;
                
            }
            .historyRight{
                color: #666;
                display: flex;
                flex: 1;
                flex-wrap: wrap;
                .keywordItem{
                    background-color: #eee;
                    height: 0.6rem;
                    padding: 0 0.2rem;
                    border-radius: 0.3rem;
                    line-height: 0.6rem;
                    margin: 0 0.1rem;
                }
            }
        }
        .searchSongs{
            position: fixed;
            top: 1.2rem;
            bottom: 1.2rem;
            overflow: scroll;
    width: 7.5rem;
    padding: 0 0.4rem;
    background-color: #fff;
    border-radius: 0.3rem 0.3rem 0 0;
    
    .searchSongs-top{
        display: flex;
        justify-content: space-between;
        height: 1rem;
        align-items: center;
        .left{
            display: flex;
            align-items: center;
            .icon{
                width: 0.5rem;
                height: 0.5rem;
            }
            .title{
                font-size: 0.3rem;
                font-weight: 900;
            }
            .num{
                font-size: 0.24rem;
                color: #333;
            }
            .text{
                display: flex;
                align-items: center;
                margin-left: 0.2rem;
            }
        }
        .btn{
            font-size: 0.24rem;
            color: #fff;
            background-color: orangered;
            // height: 0.6rem;
            line-height: 0.6rem;
            padding: 0.1rem;
            border-radius: 0.4rem;
        }
    }
    .list{
        .playItem{
            display: flex;
            justify-content: space-between;
            align-items: center;
            height: 1.2rem;
            .left{
                display: flex;
                align-items: center;
                color: #666;
                .index{
                    width: 0.3rem;
                }
                .content{
                    margin-left: 0.4rem;
                }
                .title{
                    font-size: 0.3rem;
                    font-weight: 900;
                    color: #000;
                    // margin-bottom: 0.1rem;
                }
                .tag{
                    font-size: 0.2rem;
                    color: orangered;
                    border: 1px solid orangered;
                    border-radius: 0.1rem;
                    
                }
                .name{
                    overflow: hidden;
                    text-overflow: ellipsis;
                }
                .author{
                    color: #666;
                }
            }
            .right{
                display: flex;
                justify-content: space-between;
                align-items: center;
                .icon{
                    width: 0.6rem;
                    height: 0.6rem;
                    margin:0 0.2rem;
                }
            }
            
        }
    }
}
    }
</style>